package classfile

// 代表此class文件所属的源文件名称的属性
type SourceFileAttribute struct {
	// 是定长属性，属性长度必须是2
	attributeLength uint32 
	// 指向常量池的指针
	cp              ConstantPool
	// 对常量池的有效索引，常量池此位置上必须是一个UTF8结构，代表此class的源文件的名称
	sourceFileIndex uint16
}

func (self *SourceFileAttribute) readInfo(reader *ClassReader) {
	self.sourceFileIndex = reader.ReadUint16()
}

// 获取源文件名称
func (self *SourceFileAttribute) FileName() string {
	return self.cp.getUtf8(self.sourceFileIndex)
}
